package com.xnyzc.lhy.resource.service.worksheet;

import com.xnyzc.lhy.common.entity.DiDiRv;
import com.xnyzc.lhy.common.entity.WorksheetRv;
import com.xnyzc.lhy.order.entity.param.synchronization.ChangePriceParam;
import com.xnyzc.lhy.resource.entity.worksheet.param.*;
import com.xnyzc.lhy.resource.entity.worksheet.param.heli.FromHeliWorksheetParam;

/**
 * <p>
 * 工单信息表 服务类
 * </p>
 *
 * @author haoyfa
 * @since 2019-11-04
 */
public interface WorksheetService {
    /**
     * 取消订单
     *
     * @param worksheetCancelOrderParam
     * @return
     */
    WorksheetRv cancelOrder(WorksheetCancelOrderParam worksheetCancelOrderParam);

    /**
     * 关闭订单
     *
     * @param worksheetCloseOrderParam
     * @return
     */
    DiDiRv getCloseOrder(WorksheetCloseOrderParam worksheetCloseOrderParam);

    /**
     * 订单改价接口
     *
     * @param priceParam
     * @return
     */
    DiDiRv getChangePrice(ChangePriceParam priceParam);

    /**
     * 退款接口
     *
     * @param priceParam
     * @return
     */
    DiDiRv getBillRefund(WorksheetGetBillRefundParam priceParam);

    /**
     * 免单接口
     *
     * @param worksheetFreeChargeParam
     * @return
     */
    DiDiRv getFreeCharge(WorksheetFreeChargeParam worksheetFreeChargeParam);

    /**
     * 工单状态同步第三方（滴滴）接口
     *
     * @param worksheetUpdateWorksheetParam
     * @return
     */
    WorksheetRv updateWorksheet(WorksheetUpdateWorksheetParam worksheetUpdateWorksheetParam);

    /**
     * 查询订单详情接口
     *
     * @param worksheetGetOrderPersonalDetailParam
     * @return
     */
    WorksheetRv getOrderPersonalDetail(WorksheetGetOrderPersonalDetailParam worksheetGetOrderPersonalDetailParam);

    /**
     * 查询订单列表接口
     *
     * @param worksheetgetOrderPersonalListParam
     * @return
     */
    WorksheetRv getOrderPersonalList(WorksheetgetOrderPersonalListParam worksheetgetOrderPersonalListParam);

    /**
     * 客服标记司机违规
     *
     * @param worksheetetDriverPenaltyDetailParam
     * @return
     */
    WorksheetRv setDriverPenaltyDetail(WorksheetetDriverPenaltyDetailParam worksheetetDriverPenaltyDetailParam);

    /**
     * 司机信息接口
     *
     * @param worksheetetGetDriverDetailParam
     * @return
     */
    WorksheetRv getDriverDetail(WorksheetetGetDriverDetailParam worksheetetGetDriverDetailParam);

    /**
     * 创建工单
     * @param fromHeliWorksheetParam
     * @return
     */
    WorksheetRv createWorksheet(FromHeliWorksheetParam fromHeliWorksheetParam);

    /**
     * 获取工单状态
     * @param worksheetGetOrderPersonalStatusParam
     * @return
     */
    WorksheetRv getOrderPersonalStatus(WorksheetGetOrderPersonalStatusParam worksheetGetOrderPersonalStatusParam);
}
